<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>循环语句</title>
</head>
<body>
    <script>
        // 三大循环  for  while  do-while
        // 求一下前100项的和
        var sum = 0;
        for (var i = 1; i <= 100; i++) {
            sum+=i;
        }
        alert("前100项的和为：" + sum);// 5050
        // while循环
        // 求一下1000以内的水仙花数  三位数
        var i = 123;
        while (true) {
            if (i === 1000) {
                break;
            }
            var num = i + "";
            // 获取每个各位的数值
            var bai = num.slice(0,1);// substring(start,end)
            var shi = num.slice(1,2);
            var ge = num.slice(2,3);
            if (bai*bai*bai+shi*shi*shi+ge*ge*ge == i){
                //alert("水仙花数为：" + i);
            }
            i++;
        }
        // do-while 循环
        // 100以内的奇数和
        var sum = 0;
        var i = 1;
        do {
            if (i == 101) {
                break;
            }
            if (i % 2 != 0) {
                sum += i;
            }
           i++;
        }while (true);
        alert("100以内的奇数和为：" + sum);
        // 1000以内的完美数 所有因子之和等于这个数本身   6 = 1 + 2 + 3
        // one by one 循环  循环
        // 1000以内的
        for(var i = 1; i<= 1000;i++){
            // 判断i是否为完美数
            var sum = 0;
            for(var j = 1; j < i/2;j++) {
                //判断j是否为i的因子
                if (i % j == 0) {
                    // j为i的因子
                    sum += j;
                }
            }
            // 判断i是否为完美数  所有因子之和等于这个数本身
            if (sum == i) {
               // alert("完美数为：" + i);
            }
        }

        // 100000以内的回文数(五位数)   12321就是回文数
        for(var i = 10000; i <= 100000 ; i++) {
            // 获取各位十位千位万位
            var str = i+"";
            var wan = str.slice(0,1);//slice  划片
            var qian = str.slice(1,2);
            var shi = str.slice(3,4);
            var ge = str.slice(4,5);
            if ((ge == wan) && (shi == qian)) {
                alert("回文数为：" + i);
            }
        }

        // 作业1：求给定两个数的最大公约数最小公倍数
        // 作业2：求10以内阶乘和
        // 作业3：给定一个年份月份，指出该年该月有多少天

        // 函数/方法

    </script>
</body>
</html>